/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.Ansat;
import view.GUI;

/**
 *
 * @author Morten J, Morten B & Jonas
 */
public class AnsatHandler {

    private String select;
    private static ArrayList<Ansat> ansatListe;
    private ArrayList<Integer> telefonListe;
    private Ansat ansat;
    private static Ansat aktuelAnsat;
    private ResultSet rs;

    public AnsatHandler() {

        ansatListe = new ArrayList<>();

        select = "select ansatNr, fNavn, eNavn, adresse, postNr, byNavn, kodeord from ansat left outer join byTabel on fk_postNr = postNr;";

        try {
            rs = Main.getDbConnection().select(select);
        } catch (SQLException ex) {
            GUI.getGuiHandler().setFeedbackMessage(" ved indlæsning af ansat");
        }

        try {
            while (rs.next()) {
                telefonListe = new ArrayList<>();
                ansat = new Ansat(rs.getInt("ansatNr"), rs.getString("fNavn"),
                        rs.getString("eNavn"), rs.getString("adresse"),
                        rs.getInt("postNr"), rs.getString("byNavn"), telefonListe, rs.getString("kodeord"));
                ansatListe.add(ansat);
            }
        } catch (SQLException ex) {
            GUI.getGuiHandler().setFeedbackMessage(" ved indlæsning af ansat");
        }

        select = "select ansatNr, telefonnummer from telefon left outer join ansat on fk_ansatNr = ansatNr;";

        try {
            rs = Main.getDbConnection().select(select);
	    while(rs.next()){
		for (Ansat ansat1 : ansatListe) {
		    if(ansat1.getAnsatNr() == rs.getInt("ansatNr")){
			ansat1.addTelefonNr(rs.getInt("telefonnummer"));
		    }
		}
	    }
        } catch (SQLException ex) {
            GUI.getGuiHandler().setFeedbackMessage(" ved indlæsning af ansat");
        }

        try {
            while (rs.next()) {
                for (Ansat ansat1 : ansatListe) {
                    if (ansat1.getAnsatNr() == rs.getInt("ansatNr")) {
                        ansat1.getTelefonliste().add(rs.getInt("telefonnummer"));
                    }
                }
            }
        } catch (SQLException ex) {
            GUI.getGuiHandler().setFeedbackMessage(" ved indlæsning af ansat");
        }
    }

    public static Ansat getAktuelAnsat() {
        return aktuelAnsat;
    }

    public static void setAktuelAnsat(Ansat akAnsat) {
        aktuelAnsat = akAnsat;
    }

    public static ArrayList<Ansat> getAnsatListe() {
        return ansatListe;
    }
}
